#ifndef DEVICEINFORMATION_H
#define DEVICEINFORMATION_H

#include <windows.h>
#include <stdio.h>
#include "tchar.h"
#include <stdlib.h>
#include <iostream>
#include "..\Driver\public.h"
#include <string>

#include <map>
using namespace std;

//////////////////////////////////////////////////////////////////////////
//#define MAX_DEVICE_ID_LEN 150 
#include <cfgmgr32.h>
//////////////////////////////////////////////////////////////////////////
class DeviceInformation
{
private:
	WCHAR deviceId[MAX_DEVICE_ID_LEN];

	std::string  vendorName;
	std::string  deviceName;
	std::wstring deviceType;

	//static bool addObserved;

	void mystrcpy(const WCHAR* source, WCHAR* destination, unsigned int count);
	std::string WcharToString(WCHAR * wchar, int size);
public:
	DeviceInformation(std::wstring deviceType, WCHAR* deviceId, bool addObserved);
	std::string  GetDevName();
	std::string  GetVendorName();
	std::wstring GetDeviceType();
	bool bIsListened;

	void StartListen();
	void StopListen();

	std::string isListened();
	
	~DeviceInformation();
};

//void MapDeviceVidsPids(const wchar_t *filename);


#endif // DEVICEINFORMATION_H